home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 January / macformat-020.iso / Shareware City / Developers / OutOfPhase1.01Source / OutOfPhase Folder / OscillatorSpecifier.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-10-01  |  4.1 KB  |  122 lines  |  [TEXT/KAHL]

  1. /* OscillatorSpecifier.h */
  2.  
  3. #ifndef Included_OscillatorSpecifier_h
  4. #define Included_OscillatorSpecifier_h
  5.  
  6. /* OscillatorSpecifier module depends on */
  7. /* MiscInfo.h */
  8. /* Audit */
  9. /* Debug */
  10. /* Definitions */
  11. /* Memory */
  12. /* SampleSelector */
  13. /* ModulationSpecifier */
  14. /* Envelope */
  15. /* LFOListSpecifier */
  16.  
  17. typedef float OscillatorNumType;
  18.  
  19. /* forwards */
  20. struct SampleSelectorRec;
  21. struct ModulationSpecRec;
  22. struct EnvelopeRec;
  23. struct LFOListSpecRec;
  24. struct OscillatorListRec;
  25.  
  26. typedef enum
  27.     {
  28.         eOscillatorSampled EXECUTE(= -1229),
  29.         eOscillatorWaveTable
  30.     } OscillatorTypes;
  31.  
  32. struct OscillatorRec;
  33. typedef struct OscillatorRec OscillatorRec;
  34.  
  35. /* create a new oscillator structure */
  36. OscillatorRec*                        NewOscillatorSpecifier(void);
  37.  
  38. /* dispose of an oscillator structure */
  39. void                                            DisposeOscillatorSpecifier(OscillatorRec* Osc);
  40.  
  41. /* get the actual name of the oscillator.  don't dispose this! */
  42. char*                                            OscillatorGetName(OscillatorRec* Osc);
  43.  
  44. /* put a new oscillator name in.  the object becomes owner of the name block */
  45. void                                            PutOscillatorName(OscillatorRec* Osc, char* NewName);
  46.  
  47. /* set the oscillator type */
  48. void                                            OscillatorSetTheType(OscillatorRec* Osc,
  49.                                                         OscillatorTypes WhatKindOfOscillator);
  50.  
  51. /* find out what kind of oscillator this is */
  52. OscillatorTypes                        OscillatorGetWhatKindItIs(OscillatorRec* Osc);
  53.  
  54. /* get the pitch interval --> sample mapping */
  55. struct SampleSelectorRec*    OscillatorGetSampleIntervalList(OscillatorRec* Osc);
  56.  
  57. /* get the list of oscillators that are modulating us */
  58. struct ModulationSpecRec*    OscillatorGetModulatorInputList(OscillatorRec* Osc);
  59.  
  60. /* get the output loudness of the oscillator */
  61. OscillatorNumType                    OscillatorGetOutputLoudness(OscillatorRec* Osc);
  62.  
  63. /* put a new output loudness in for the oscillator */
  64. void                                            PutOscillatorNewOutputLoudness(OscillatorRec* Osc,
  65.                                                         double NewOutputLevel);
  66.  
  67. /* get the frequency multiplier factor */
  68. OscillatorNumType                    OscillatorGetFrequencyMultiplier(OscillatorRec* Osc);
  69.  
  70. /* get the frequency divisor integer */
  71. long                                            OscillatorGetFrequencyDivisor(OscillatorRec* Osc);
  72.  
  73. /* change the frequency adjust factors */
  74. void                                            PutOscillatorNewFrequencyFactors(OscillatorRec* Osc,
  75.                                                         double NewMultipler, long NewDivisor);
  76.  
  77. /* find out if output of this oscillator is to be included in final output */
  78. MyBoolean                                    IncludeOscillatorInFinalOutput(OscillatorRec* Osc);
  79.  
  80. /* change whether or not the oscillator is being included in the final output */
  81. void                                            PutOscillatorIncludeInOutputFlag(OscillatorRec* Osc,
  82.                                                         MyBoolean IncludeInOutputFlag);
  83.  
  84. /* get the loudness envelope for the oscillator */
  85. struct EnvelopeRec*                OscillatorGetLoudnessEnvelope(OscillatorRec* Osc);
  86.  
  87. /* get the list of LFO oscillators modulating the loudness envelope output */
  88. struct LFOListSpecRec*        OscillatorGetLoudnessLFOList(OscillatorRec* Osc);
  89.  
  90. /* get the excitation envelope for the oscillator */
  91. struct EnvelopeRec*                OscillatorGetExcitationEnvelope(OscillatorRec* Osc);
  92.  
  93. /* get the list of LFO oscillators modulating the excitation envelope output */
  94. struct LFOListSpecRec*        OscillatorGetExcitationLFOList(OscillatorRec* Osc);
  95.  
  96. /* resolve modulator named references to oscillators */
  97. MyBoolean                                    ResolveOscillatorModulators(OscillatorRec* Osc,
  98.                                                         struct OscillatorListRec* ListOfOscillators);
  99.  
  100. /* get the stereo bias factor */
  101. OscillatorNumType                    OscillatorGetStereoBias(OscillatorRec* Osc);
  102.  
  103. /* put a new value for the stereo bias factor */
  104. void                                            OscillatorPutStereoBias(OscillatorRec* Osc,
  105.                                                         OscillatorNumType NewStereoBias);
  106.  
  107. /* get the surround bias factor */
  108. OscillatorNumType                    OscillatorGetSurroundBias(OscillatorRec* Osc);
  109.  
  110. /* put a new value for the surround bias factor */
  111. void                                            OscillatorPutSurroundBias(OscillatorRec* Osc,
  112.                                                         OscillatorNumType NewSurroundBias);
  113.  
  114. /* get the time displacement factor */
  115. OscillatorNumType                    OscillatorGetTimeDisplacement(OscillatorRec* Osc);
  116.  
  117. /* put a new value for the time displacement factor */
  118. void                                            OscillatorPutTimeDisplacement(OscillatorRec* Osc,
  119.                                                         OscillatorNumType NewTimeDisplacement);
  120.  
  121. #endif
  122.